package com.hm.order.share.service;

import java.util.List;

import com.hm.order.mongo.def.OrderTypeDef;
import com.hm.order.vo.PlaceAnOrderVo;

/**
 * @author shishun.wang
 * @date 下午4:50:32 2016年7月20日
 * @version 1.0
 * @describe
 */
public interface OrderStatusService {

	/* 买家 */

	/**
	 * 下订单
	 * 
	 * @param orderType
	 *            订单类型
	 * @param placeAnOrders
	 *            订单明细
	 */
	public void placeAnOrder(OrderTypeDef orderType, List<PlaceAnOrderVo> placeAnOrders);

	/**
	 * 取消订单
	 * 
	 * @param orderType
	 *            订单类型
	 * @param orderItemId
	 *            订单ID
	 * @param orderNum
	 *            订单编号
	 */
	public void cancelOrder(OrderTypeDef orderType, String orderItemId, String orderNum);

	/**
	 * 已收货
	 * 
	 * @param orderType
	 *            订单类型
	 * @param orderItemId
	 *            订单ID
	 * @param orderNum
	 *            订单编号
	 */
	public void deliveryed(OrderTypeDef orderType, String orderItemId, String orderNum);

	/**
	 * 退货
	 * 
	 * @param orderType
	 *            订单类型
	 * @param orderItemId
	 *            订单ID
	 * @param orderNum
	 *            订单编号
	 */
	public void salesReturn(OrderTypeDef orderType, String orderItemId, String orderNum);

	/* 卖方 */

	/**
	 * 接受订单-发货
	 * 
	 * @param orderType
	 *            订单类型
	 * @param orderItemId
	 *            订单ID
	 * @param orderNum
	 *            订单编号
	 */
	public void shipmentsed(OrderTypeDef orderType, String orderItemId, String orderNum);

	/**
	 * 收货交易已完成
	 * 
	 * @param orderType
	 *            订单类型
	 * @param orderItemId
	 *            订单ID
	 * @param orderNum
	 *            订单编号
	 */
	public void deliveryedFinished(OrderTypeDef orderType, String orderItemId, String orderNum);

	/**
	 * 退货完成
	 * 
	 * @param orderType
	 *            订单类型
	 * @param orderItemId
	 *            订单ID
	 * @param orderNum
	 *            订单编号
	 */
	public void salesReturned(OrderTypeDef orderType, String orderItemId, String orderNum);
}
